package com.yhty.dao;

import java.util.List;

import org.springframework.dao.EmptyResultDataAccessException;

import com.yhty.model.Owe;
import com.yhty.model.OweList;
import com.yhty.model.WeDefine;

/**
 * 欠费数据dao处理
 * @author RoySong
 * 2011-3-30-下午02:51:28
 */
public interface OweDao {

	/**
	 * 新增欠费记录
	 * @param owe
	 */
	public void add(Owe owe);
	
	/**
	 * 根据日期获取对应月份的欠费记录
	 * @param date
	 * @return
	 */
	public List<Owe> getByMonth(String date);
	
	/**
	 * 判断本月欠费记录是否已经自动生成
	 * @return
	 */
	public boolean isOweInit();

	/**
	 * 取出本月应缴的房租物管费用
	 * @return
	 */
	public List<Owe> getThisMonth();

	/**
	 * 批量插入本月欠费信息
	 * @param thisMonth
	 */
	public void batchAdd(List<Owe> thisMonth);

	/**
	 * 更改初始化标识
	 */
	public void init();

	/**
	 * 根据出租关系ID获取当月欠费记录
	 * @param today
	 * @param rent_id 
	 * @return
	 */
	public Owe getByRentId(String today, Long rent_id) throws EmptyResultDataAccessException;

	/**
	 * 更新欠费记录
	 * @param owe
	 */
	public void update(Owe owe);

	/**
	 * 根据月份获取欠费记录(包含房屋和租房人信息)
	 * @param date
	 * @return
	 */
	public List<OweList> getOweListByMonth(String date);

	/**
	 * 水电单价改动,批量更新欠费信息
	 * @param oList
	 */
	public void batchUpdateWe(List<Owe> oList);

	/**
	 * 根据rent_id获取本月初始化欠费信息(包含房屋和租房人信息)
	 * @param rent_id
	 * @return
	 */
	public Owe getThisMonthOwe(Long rent_id);
}
